package com.spdd.mt.biz.util;

import com.google.common.collect.ImmutableMap;
import com.spdd.mt.biz.constant.MtOrderStatus;

import java.util.Map;

/**
 * 订单状态转换逻辑处理类
 *
 * @since 2025年04月04日
 */
public class StatusUtils {

    // .put("00", "2")
    //         .put("01", "1")
    //         .put("02", "1")
    //         .put("03", "2")
    //         .put("04", "1")
    //         .put("05", "1")
    //         .put("06", "2")
    //         .put("07", "1")
    //         .put("08", "1")
    //         .put("09", "1")
    //         .put("10", "2")
    //         .put("11", "1")
    //         .put("12", "1")
    //         .put("13", "1")
    //         .put("14", "1")
    //         .put("30", "1")
    //         .put("205", "1")
    //         .put("301", "1")
    //         .put("306", "1")
    //         .put("99", "2")

    /** SPDD 下单订单状态码  映射 为系统订单状态(OrderStatus)，key为SPDD订单状态码 */
    public static final Map<String, Integer> CHARGE_ORDER_STATUS_MAPPER = ImmutableMap.<String, Integer>builder()
            .put("00", 2)
            .put("01", 1)
            .put("02", 1)
            .put("03", 2)
            .put("04", 1)
            .put("05", 1)
            .put("06", 2)
            .put("07", 1)
            .put("08", 1)
            .put("09", 1)
            .put("10", 2)
            .put("11", 1)
            .put("12", 1)
            .put("13", 1)
            .put("14", 1)
            .put("30", 1)
            .put("205", 1)
            .put("301", 1)
            .put("306", 1)
            .put("99", 2)
            .build();

    /** SPDD 查询订单状态码 映射 为系统订单状态(OrderStatus) 1－待发 2－已发 3- 重发中 4－失败 6—成功 */
    public static final Map<String, Integer> QUERY_ORDER_STATUS_MAPPER = ImmutableMap.<String, Integer>builder()
            .put("1", 2)
            .put("2", 2)
            .put("3", 2)
            .put("4", 1)
            .put("6", 0)
            .build();

    /** SPDD通知状态码 映射 为系统订单状态(OrderStatus) 00-成功，99-失败， 其他- 不处理 */
    public static final Map<String, Integer> NOTIFY_ORDER_STATUS_MAPPER = ImmutableMap.<String, Integer>builder()
            .put("00", 0)
            .put("99", 1)
            .build();

    /** 系统订单状态 映射 为美团订单状态 */
    public static final Map<Integer, MtOrderStatus> ORDER_STATUS_MT_MAPPER = ImmutableMap.<Integer, MtOrderStatus>builder()
            .put(0, MtOrderStatus.ORDER_SUCCESS)
            .put(1, MtOrderStatus.ORDER_FAILED)
            .put(2, MtOrderStatus.ORDER_IN_PROCESS)
            .put(3, MtOrderStatus.ORDER_FAILED)
            .put(4, MtOrderStatus.ORDER_CREATED)
            .build();

}
